#ifndef EVENTRECORD_TABLE_H
#define EVENTRECORD_TABLE_H

#include <QWidget>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDateTime>

namespace Ui
{
    class eventrecord_table;
}

// 事件记录信息结构体
struct EventRecordInfo
{
    int id;             // 数据库主键ID
    QString blockName;  // 柜名
    QString position;   // 安装位置
    QString alarmValue; // 报警值
    QString startTime;  // 发生时间
    QString endTime;    // 消除时间
    QString status;     // 报警状态
};

class eventrecord_table : public QWidget
{
    Q_OBJECT

public:
    explicit eventrecord_table(QWidget *parent = nullptr);
    ~eventrecord_table();

    bool processJsonCommand(const QString &jsonStr, QString *err);

private slots:
    void on_pb_quary_clicked();
    void onDeleteButtonClicked();

    void on_pb_clear_clicked();

private:
    void initDatabase();
    void queryAndDisplayEvents(const QString &startTime, const QString &endTime);
    void updateEventTable(const QList<EventRecordInfo> &events);

    Ui::eventrecord_table *ui;
    // QSqlDatabase m_db;

signals:
    void signalToForward(const QString &msg);
};

#endif // EVENTRECORD_TABLE_H